# -*- coding: utf-8 -*-
"""
最终全面MES系统配置 - 避免循环依赖
"""
import os
import sys

# 基础路径配置
PROJECT_ROOT = os.path.abspath(os.path.dirname(__file__))
BASE_DIR = PROJECT_ROOT

# 调试模式
DEBUG = True
ALLOWED_HOSTS = ['*']

# 密钥
SECRET_KEY = 'your-secret-key-here-change-in-production'

# 应用列表（按依赖关系排序）
INSTALLED_APPS = [
    # Django核心应用
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.sites',
    'django.contrib.humanize',
    
    # 第一层：基础工具应用（无外部依赖）
    'apps.yt_object',        # 对象基类
    'apps.yt_file',          # 文件管理
    'apps.yt_barcode',       # 条码管理
    'apps.yt_report',        # 报表工具
    
    # 第二层：基础业务应用（依赖工具应用）
    'apps.person',           # 人员管理
    'apps.customer',         # 客户管理
    'apps.companydepartment', # 公司部门
    'apps.about',            # 关于页面
    'apps.profiles',         # 用户资料
    
    # 第三层：仓库和物料（相互依赖较少）
    'apps.warehouse',        # 仓库管理
    'apps.material',         # 物料管理
    'apps.device',           # 设备管理
    'apps.productcatalog',   # 产品目录
    'apps.maintenance',      # 维护管理
    'apps.quality',          # 质量管理
    
    # 第四层：第三方应用（已修复语法问题）
    'thirdparty.announcements',  # 通知公告
    'thirdparty.django_messages', # 消息系统
    # 'thirdparty.actstream',      # 活动流 - 暂时禁用
    
    # 暂时不启用的复杂应用（存在循环依赖）
    # 'apps.permissions',      # 权限管理
    # 'apps.workflows',        # 工作流
    # 'apps.technologies',     # 工艺管理
    # 'apps.manufactureplan',  # 制造计划
    # 'apps.report',           # 报表管理
    # 'apps.yt_log',           # 日志管理
    # 'apps.yt_timesheet',     # 时间表
    # 'apps.yt_actstream',     # 活动流工具
    # 'apps.yt_workflows',     # 工作流工具
]

# 中间件
MIDDLEWARE = [
    'django.middleware.security.SecurityMiddleware',
    'django.contrib.sessions.middleware.SessionMiddleware',
    'django.middleware.common.CommonMiddleware',
    'django.middleware.csrf.CsrfViewMiddleware',
    'django.contrib.auth.middleware.AuthenticationMiddleware',
    'django.contrib.messages.middleware.MessageMiddleware',
    'django.middleware.clickjacking.XFrameOptionsMiddleware',
]

# URL配置
ROOT_URLCONF = 'urls'

# 模板配置
TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'templates')],
        'APP_DIRS': True,
        'OPTIONS': {
            'context_processors': [
                'django.template.context_processors.debug',
                'django.template.context_processors.request',
                'django.contrib.auth.context_processors.auth',
                'django.contrib.messages.context_processors.messages',
                'django.template.context_processors.static',
                'django.template.context_processors.media',
                'django.template.context_processors.i18n',
            ],
        },
    },
]

# 数据库配置 - MySQL
DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'walmart',
        'USER': 'walmart_user',
        'PASSWORD': 'Zb_200407',
        'HOST': '175.27.138.86',
        'PORT': '3306',
        'OPTIONS': {
            'charset': 'utf8mb4',
            'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
        },
    }
}

# 国际化
LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = True
SITE_ID = 1

# 静态文件配置
STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')
STATICFILES_DIRS = [
    os.path.join(BASE_DIR, 'site_media'),
]

# 媒体文件配置
MEDIA_URL = '/media/'
MEDIA_ROOT = os.path.join(BASE_DIR, 'media')

# 认证配置
AUTHENTICATION_BACKENDS = [
    'django.contrib.auth.backends.ModelBackend',
]

# 登录配置
LOGIN_URL = '/admin/login/'
LOGIN_REDIRECT_URL = '/admin/'
LOGOUT_REDIRECT_URL = '/admin/'

# 日志配置
LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
        'file': {
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'django.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console', 'file'],
            'level': 'INFO',
        },
    },
}

# 默认主键字段类型
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField' 